//
// Python wrapper class for CyGameTextMgr 
// 
#include "CvGameCoreDLL.h"
#include "CvGameTextMgr.h"
#include "CyGameTextMgr.h"
#include "CyCity.h"
#include "CyDeal.h"
#include "CyUnit.h"

CyGameTextMgr::CyGameTextMgr() : 
m_pGameTextMgr(NULL)
{
	m_pGameTextMgr = &CvGameTextMgr::GetInstance();
}

CyGameTextMgr::CyGameTextMgr(CvGameTextMgr* pGameTextMgr) : 
m_pGameTextMgr(m_pGameTextMgr)
{}

void CyGameTextMgr::Reset()
{
	GAMETEXT.Reset();
}

std::wstring CyGameTextMgr::getTimeStr(int iGameTurn, bool bSave)
{
	CvWString str;
	GAMETEXT.setTimeStr(str, iGameTurn, bSave);
	return str;
}

std::wstring CyGameTextMgr::getDateStr(int iGameTurn, bool bSave, int /*CalendarTypes*/ eCalendar, int iStartYear, int /*GameSpeedTypes*/ eSpeed)
{
	CvWString str;
	GAMETEXT.setDateStr(str, iGameTurn, bSave, (CalendarTypes)eCalendar, iStartYear, (GameSpeedTypes)eSpeed);
	return str;
}

std::wstring CyGameTextMgr::getInterfaceTimeStr(int /*PlayerTypes*/ iPlayer)
{
	CvWString szBuffer;
	GAMETEXT.setInterfaceTime(szBuffer, ((PlayerTypes)iPlayer));
	return szBuffer;
}

std::wstring CyGameTextMgr::getGoldStr(int /*PlayerTypes*/ iPlayer)
{
	CvWString szBuffer;
	GAMETEXT.setGoldStr(szBuffer, ((PlayerTypes)iPlayer));
	return szBuffer;
}

std::wstring CyGameTextMgr::getResearchStr(int /*PlayerTypes*/ iPlayer)
{
	CvWString szBuffer;
	GAMETEXT.setResearchStr(szBuffer, ((PlayerTypes)iPlayer));
	return szBuffer;
}

std::wstring CyGameTextMgr::getOOSSeeds(int /*PlayerTypes*/ iPlayer)
{
	CvWString szBuffer;
	GAMETEXT.setOOSSeeds(szBuffer, ((PlayerTypes)iPlayer));
	return szBuffer;
}

std::wstring CyGameTextMgr::getNetStats(int /*PlayerTypes*/ iPlayer)
{
	CvWString szBuffer;
	GAMETEXT.setNetStats(szBuffer, ((PlayerTypes)iPlayer));
	return szBuffer;
}

std::wstring CyGameTextMgr::getTechHelp(int iTech, bool bCivilopediaText, bool bPlayerContext, bool bStrategyText, bool bTreeInfo, int iFromTech)
{
	CvWString szBuffer;
	GAMETEXT.setTechHelp(szBuffer, (TechTypes)iTech, bCivilopediaText, bPlayerContext, bStrategyText, bTreeInfo, (TechTypes)iFromTech);
	return szBuffer;
}

std::wstring CyGameTextMgr::getUnitHelp(int iUnit, bool bCivilopediaText, bool bStrategyText, bool bTechChooserText, CyCity* pCity)
{
	CvWString szBuffer;
	GAMETEXT.setUnitHelp(szBuffer, (UnitTypes)iUnit, bCivilopediaText, bStrategyText, bTechChooserText, ((pCity != NULL) ? pCity->getCity() : NULL));
	return szBuffer;
}

std::wstring CyGameTextMgr::getSpecificUnitHelp(CyUnit* pUnit, bool bOneLine, bool bShort)
{
	CvWString szBuffer;
	if (pUnit && pUnit->getUnit())
	{
		GAMETEXT.setUnitHelp(szBuffer, pUnit->getUnit(), bOneLine, bShort);
	}
	return szBuffer;
}

std::wstring CyGameTextMgr::getBuildingHelp(int iBuilding, bool bCivilopediaText, bool bStrategyText, bool bTechChooserText, CyCity* pCity)
{
	CvWString szBuffer;

	// < Upgradeable Buildings Start >
	GAMETEXT.setBuildingHelp(szBuffer, (BuildingTypes)iBuilding, bCivilopediaText, bStrategyText, bTechChooserText, ((pCity != NULL) ? pCity->getCity() : NULL), false);
	// < Upgradeable Buildings End   >

	return szBuffer;
}

std::wstring CyGameTextMgr::getProjectHelp(int iProject, bool bCivilopediaText, CyCity* pCity)
{
	CvWString szBuffer;
	GAMETEXT.setProjectHelp(szBuffer, (ProjectTypes)iProject, bCivilopediaText, ((pCity != NULL) ? pCity->getCity() : NULL));
	return szBuffer;
}

std::wstring CyGameTextMgr::getPromotionHelp(int iPromotion, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.setPromotionHelp(szBuffer, (PromotionTypes)iPromotion, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::getBonusHelp(int iBonus, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.setBonusHelp(szBuffer, (BonusTypes)iBonus, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::getReligionHelpCity(int iReligion, CyCity* pCity, bool bCityScreen, bool bForceReligion, bool bForceState, bool bNoStateReligion)
{
	CvWString szBuffer;
	GAMETEXT.setReligionHelpCity(szBuffer, (ReligionTypes)iReligion, ((pCity != NULL) ? pCity->getCity() : NULL), bCityScreen, bForceReligion, bForceState, bNoStateReligion);
	return szBuffer;
}

std::wstring CyGameTextMgr::getImprovementHelp(int iImprovement, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.setImprovementHelp(szBuffer, (ImprovementTypes)iImprovement, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::getFeatureHelp(int iFeature, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.setFeatureHelp(szBuffer, (FeatureTypes)iFeature, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::getTerrainHelp(int iTerrain, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.setTerrainHelp(szBuffer, (TerrainTypes)iTerrain, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::parseCivicInfo(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfo(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}

//EDIT BY MRGENIE START
//EDIT BY MRGENIE START
//EDIT BY MRGENIE START
//EDIT BY MRGENIE START
//EDIT BY MRGENIE START
std::wstring CyGameTextMgr::parseCivicInfoTechPrereq(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoTechPrereq(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoBuildingNotRequired(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoBuildingNotRequired(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumSpecialistInfos(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumSpecialistInfos(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoGreatPeopleRateModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoGreatPeopleRateModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoGreatGeneralRateModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoGreatGeneralRateModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoDomesticGreatGeneralRateModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoDomesticGreatGeneralRateModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoStateReligionGreatPeopleRateModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoStateReligionGreatPeopleRateModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoDistanceMaintenanceModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoDistanceMaintenanceModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumCitiesMaintenanceModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumCitiesMaintenanceModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoExtraHealth(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoExtraHealth(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoFreeExperience(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoFreeExperience(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoWorkerSpeedModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoWorkerSpeedModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
// EDIT MRGENIE START - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE START - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE START - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE START - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE START - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
std::wstring CyGameTextMgr::parseCivicInfoImprovementUpgradeRateModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoImprovementUpgradeRateModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoImprovementUpgradeRateModifierAppend_1(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoImprovementUpgradeRateModifierAppend_1(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoImprovementUpgradeRateModifierAppend_2(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoImprovementUpgradeRateModifierAppend_2(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
// EDIT MRGENIE END - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR IMPROVEMENT UPGRADE RATE ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN

std::wstring CyGameTextMgr::parseCivicInfoMilitaryProductionModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoMilitaryProductionModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoFreeUnitsPopulationPercent(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoFreeUnitsPopulationPercent(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoBaseFreeMilitaryUnits(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoBaseFreeMilitaryUnits(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoHappyPerMilitaryUnit(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoHappyPerMilitaryUnit(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoMilitaryFoodProduction(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoMilitaryFoodProduction(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoWorldSizeMaxConscript(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoWorldSizeMaxConscript(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNoUnhealthyPopulation(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNoUnhealthyPopulation(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoBuildingOnlyHealthy(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoBuildingOnlyHealthy(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoExpInBorderModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoExpInBorderModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoWarWearinessModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoWarWearinessModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoFreeSpecialist(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoFreeSpecialist(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoTradeRoutes(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoTradeRoutes(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNoForeignTrade(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNoForeignTrade(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoCivicPercentAnger(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoCivicPercentAnger(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoStateReligion(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoStateReligion(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoStateReligionHappiness(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoStateReligionHappiness(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNonStateReligionHappiness(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNonStateReligionHappiness(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoStateReligionUnitProductionModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoStateReligionUnitProductionModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoStateReligionBuildingProductionModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoStateReligionBuildingProductionModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNoStateReligionBuildingProductionModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNoStateReligionBuildingProductionModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNoStateReligionBuildingProductionModifierAppend(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNoStateReligionBuildingProductionModifierAppend(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoStateReligionFreeExperience(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoStateReligionFreeExperience(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNoNonStateReligionSpread(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNoNonStateReligionSpread(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoCityGuardModifier(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoCityGuardModifier(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNoTechLeak(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNoTechLeak(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoYieldChangeHelpAllCities(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoYieldChangeHelpAllCities(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoYieldChangeHelpCapital(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoYieldChangeHelpCapital(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoYieldChangeHelpTradeRoutes(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoYieldChangeHelpTradeRoutes(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoCommerceChangeHelpAllCities(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoCommerceChangeHelpAllCities(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoCommerceChangeHelpCapital(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoCommerceChangeHelpCapital(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoCommerceChangeHelpSpecialist(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoCommerceChangeHelpSpecialist(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoLargestCityHappiness(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoLargestCityHappiness(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
	// EDIT MRGENIE START - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
std::wstring CyGameTextMgr::parseCivicInfoNumImprovementInfosYield1Row1(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumImprovementInfosYield1Row1(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumImprovementInfosYield1Row2(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumImprovementInfosYield1Row2(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumImprovementInfosYield2Row1(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumImprovementInfosYield2Row1(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumImprovementInfosYield2Row2(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumImprovementInfosYield2Row2(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumImprovementInfosYield3Row1(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumImprovementInfosYield3Row1(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumImprovementInfosYield3Row2(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumImprovementInfosYield3Row2(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
	// EDIT MRGENIE END - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
    // EDIT MRGENIE END - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE END - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE END - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE END - SPECIAL HANDLE FOR YIELD ARRAYS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN

std::wstring CyGameTextMgr::parseCivicInfoInquisition(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoInquisition(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoInquisitionAppend1(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoInquisitionAppend1(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoInquisitionAppend2(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoInquisitionAppend2(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoInquisitionAppend3(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoInquisitionAppend3(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoBuildingCivicPrereq(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoBuildingCivicPrereq(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoBuildingCivicPrereqAppend1(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoBuildingCivicPrereqAppend1(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoBuildingCivicPrereqAppend2(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoBuildingCivicPrereqAppend2(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoBuildingCivicPrereqAppend3(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoBuildingCivicPrereqAppend3(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
	// EDIT MRGENIE START - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
	// EDIT MRGENIE START - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
std::wstring CyGameTextMgr::parseCivicInfoNumBuildingInfos(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumBuildingInfos(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumBuildingInfosAppend_1(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumBuildingInfosAppend_1(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumBuildingInfosAppend_2(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumBuildingInfosAppend_2(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumBuildingInfosAppend_3(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumBuildingInfosAppend_3(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumBuildingInfosAppend_4(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumBuildingInfosAppend_4(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoNumBuildingInfosAppend_5(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumBuildingInfosAppend_5(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}

// EDIT MRGENIE END - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
// EDIT MRGENIE END - SPECIAL HANDLE FOR BUILDING HAPPINESS TO DEVIDE THEM IN SMALLER PORTIONS FOR THE CIVIC SCREEN
std::wstring CyGameTextMgr::parseCivicInfoNumFeatureInfos(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoNumFeatureInfos(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicNumHurryInfos(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicNumHurryInfos(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoGoldPerUnit(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoGoldPerUnit(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}
std::wstring CyGameTextMgr::parseCivicInfoGoldPerMilitaryUnit(int /*CivicTypes*/ iCivicType, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
	CvWString szBuffer;
	GAMETEXT.parseCivicInfoGoldPerMilitaryUnit(szBuffer, (CivicTypes) iCivicType, bCivilopediaText, bPlayerContext, bSkipName);
	return szBuffer;
}

//EDIT BY MRGENIE END
//EDIT BY MRGENIE END
//EDIT BY MRGENIE END
//EDIT BY MRGENIE END
//EDIT BY MRGENIE END

std::wstring CyGameTextMgr::parseReligionInfo(int /*ReligionTypes*/ iReligionType, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.setReligionHelp(szBuffer, (ReligionTypes) iReligionType, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::parseCivInfos(int /*CivilizationTypes*/ iCivilization, bool bDawnOfMan)
{
	CvWString szBuffer;
	GAMETEXT.parseCivInfos(szBuffer, (CivilizationTypes) iCivilization, bDawnOfMan);
	return szBuffer;
}

std::wstring CyGameTextMgr::parseLeaderTraits(int /*LeaderHeadTypes*/ iLeader, int /*CivilizationTypes*/ iCivilization, bool bDawnOfMan, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.parseLeaderTraits(szBuffer, (LeaderHeadTypes)iLeader, (CivilizationTypes) iCivilization, bDawnOfMan, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::getTradeString(TradeData* pTradeData, int iPlayer1, int iPlayer2)
{
	CvWString szBuffer;
	if (NULL != pTradeData)
	{
		GAMETEXT.getTradeString(szBuffer, *pTradeData, (PlayerTypes)iPlayer1, (PlayerTypes) iPlayer2);
	}
	return szBuffer;
}

std::wstring CyGameTextMgr::getSpecialistHelp(int iSpecialist, bool bCivilopediaText)
{
	CvWString szBuffer;
	GAMETEXT.parseSpecialistHelp(szBuffer, (SpecialistTypes) iSpecialist, NULL, bCivilopediaText);
	return szBuffer;
}

std::wstring CyGameTextMgr::buildHintsList()
{
	CvWString szBuffer;
	GAMETEXT.buildHintsList(szBuffer);
	return szBuffer;
}

std::wstring CyGameTextMgr::getAttitudeString(int iPlayer, int iTargetPlayer)
{
	CvWString szBuffer;
	GAMETEXT.getAttitudeString(szBuffer, (PlayerTypes)iPlayer, (PlayerTypes) iTargetPlayer);
	return szBuffer;
}

std::wstring CyGameTextMgr::setConvertHelp(int iPlayer, int iReligion)
{
	CvWString szBuffer;
	GAMETEXT.setConvertHelp(szBuffer, (PlayerTypes)iPlayer, (ReligionTypes) iReligion);
	return szBuffer;
}

std::wstring CyGameTextMgr::setRevolutionHelp(int iPlayer)
{
	CvWString szBuffer;
	GAMETEXT.setRevolutionHelp(szBuffer, (PlayerTypes)iPlayer);
	return szBuffer;
}

std::wstring CyGameTextMgr::setVassalRevoltHelp(int iMaster, int iVassal)
{
	CvWString szBuffer;
	GAMETEXT.setVassalRevoltHelp(szBuffer, (TeamTypes)iMaster, (TeamTypes)iVassal);
	return szBuffer;
}

std::wstring CyGameTextMgr::getActiveDealsString(int iThisPlayer, int iOtherPlayer)
{
	CvWString szBuffer;
	GAMETEXT.getActiveDealsString(szBuffer, (PlayerTypes)iThisPlayer, (PlayerTypes)iOtherPlayer);
	return szBuffer;
}

std::wstring CyGameTextMgr::getDealString(CyDeal* pDeal, int iPlayerPerspective)
{
	CvWString szBuffer;
	if (pDeal && pDeal->getDeal())
	{
		GAMETEXT.getDealString(szBuffer, *(pDeal->getDeal()), (PlayerTypes)iPlayerPerspective);
	}
	return szBuffer;
}
